/**
 * 文件名：@RequestBodySequenceArgumentResolver.java <br/>
 * 包名：cn.efunbox.afw.web.mvc.springmvc <br/>
 * 项目名：afw-web <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.web.mvc.springmvc;

import java.util.List;

import org.springframework.core.MethodParameter;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.ModelAndViewContainer;

/**
 * 类名：RequestBodySequenceArgumentResolver  <br />
 *
 * 功能：参考：HandlerMethodParameterSequenceRequestBodyInterceptor
 *
 * @author xtwin <br />
 * 创建时间：2016年7月25日 下午2:26:41  <br />
 * @version 2016年7月25日
 */
public abstract class AbstractRequestBodySequenceArgumentResolver extends AbstractRequestBodyArgumentResolver<List<Object>> {
	
	/**
	 * 功能: 从参数列表中取出指定位置的参数<br/>
	 * 
	 * 重写：xtwin <br/>
	 * 
	 * @version ：2016年7月27日 下午4:36:42<br/>
	 * 
	 * @param body
	 * @param parameter
	 * @param mavContainer
	 * @param webRequest
	 * @param binderFactory
	 * @return <br/>
	 * @see cn.efunbox.afw.web.mvc.springmvc.AbstractRequestBodyArgumentResolver#doResolveArgument(java.lang.Object, org.springframework.core.MethodParameter, org.springframework.web.method.support.ModelAndViewContainer, org.springframework.web.context.request.NativeWebRequest, org.springframework.web.bind.support.WebDataBinderFactory)
	 */
	@Override
	protected Object doResolveArgument(List<Object> body, MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) {
		return body.size() > parameter.getParameterIndex() ? body.get(parameter.getParameterIndex()) : null;
	}
}